<?php
class paymentForm extends Form
{
    function paymentForm()
    {
        Form::Form('paymentForm');
    }

    function draw()
    {
        $err = '';
        $order = array();
        if (!User::is_login()) {
            return;
        }
        if (isset($_SESSION['cart'])) {
            $cart = $_SESSION['cart'];
            if ($cart['user']['email'] != '') {
                //kiểm tra một số điều kiện của giỏ hàng ở đây

                if ($cart['total']>0) {
                    //trường hợp DEAL
                    if(isset($cart['deal_id']) && $cart['deal_id']){
                        $deal_id = $cart['deal_id'];
                        $deal = Db_Deal::getDealHotelById($deal_id);
                        $total_room = $cart['total_room'];
                        $int_from_date = $cart['int_from_date'];
                        $int_to_date = $cart['int_to_date'];
                        $total = $cart['total'];
                        $type_payment = $cart['type_payment'];
                        $user = $cart['user'];
                        if($order_id = Db_BookingProcees::addDealToCart($deal_id, $total_room, $int_from_date, $int_to_date, $total, $type_payment, $user)){
                            // Nếu thanh toán chuyển khoản thì xử lý qua SohaPay,
                            //ngược lại thì thông báo thành công (thanh toán COD/Office)
                            $_SESSION['cart']['order_id'] = $order_id;
                            $order_code = isset($_SESSION['cart']['code']) ? $_SESSION['cart']['code'] : 0;
                            if ($type_payment == Db_OrderHelper::PAYMENT_TYPE_SOHAPAY) {
                                //Lấy URL return từ Soha Payment
                                $return_url = "http://" . $_SERVER['HTTP_HOST'] . Url::build('payment', array('cmd' => 'sohapay_complete_deal', 'order_id' => $order_id));
                                //Lấy thông tin giao dịch
                                $transaction_info = "Mua deal khách sạn: " . $deal['name'];
                                $order_email = $user['email'];
                                $order_mobile = "" . $user['phone'];
                                //insert order_id vào trong payment_log queue
                                Db_PaymentLog::insertToQueue($order_id);
                                //Khai báo đối tượng của lớp PG_Checkout
                                $classPayment = new PG_checkout();
                                //Tạo link thanh toán đến Soha Payment
                                $url = $classPayment->buildCheckoutUrl($return_url, $transaction_info, $order_code, $total, $order_email, $order_mobile);
                                header('Location:' . $url);
                                exit();
                            }else{
                                $url = 'payment.html?cmd=complete&type=1&order_id=' . $order_id;
                                header('Location:' . $url);
                                exit();
                            }
                        }
                        exit();
                    }
                    //end trường hợp DEAL


                    //trường hợp đặt phòng bình thường
                    $hotel_id = $cart['hotel_id'];
                    $roombk = $cart['roombk'];
                    $total_room = $cart['total_room'];
                    $int_from_date = $cart['int_from_date'];
                    $int_to_date = $cart['int_to_date'];
                    $total = $cart['total'];
                    $type_payment = $cart['type_payment'];
                    $user = $cart['user'];

                    //Thêm vào CSDL
                    if($order_id = Db_BookingProcees::addRoomBookToCart($roombk,$total_room,$int_from_date,$int_to_date,$total,$type_payment,$user)){
                        // Nếu thanh toán chuyển khoản thì xử lý qua SohaPay,
                        //ngược lại thì thông báo thành công (thanh toán COD/Office)
                        $_SESSION['cart']['order_id'] = $order_id;
                        $order_code = isset($_SESSION['cart']['code']) ? $_SESSION['cart']['code'] : 0;
                        if ($type_payment == Db_OrderHelper::PAYMENT_TYPE_SOHAPAY) {
                            $return_url = "http://" . $_SERVER['HTTP_HOST'] . Url::build('payment', array('cmd' => 'sohapay_complete', 'order_id' => $order_id));
                            //Lấy thông tin giao dịch
                            $transaction_info = "Đặt phòng khách sạn: " . $hotel_id;
                            $order_email = $user['email'];
                            $order_mobile = "" . $user['phone'];
                            //insert order_id vào trong payment_log queue
                            Db_PaymentLog::insertToQueue($order_id);
                            //Khai báo đối tượng của lớp PG_Checkout
                            $classPayment = new PG_checkout();
                            //Tạo link thanh toán đến Soha Payment
                            $url = $classPayment->buildCheckoutUrl($return_url, $transaction_info, $order_code, $total, $order_email, $order_mobile);
                            header('Location:' . $url);
                            exit();
                        }else{
                            $url = 'payment.html?cmd=complete&order_id=' . $order_id;
                            header('Location:' . $url);
                            return;
                        }
                    }
                } else {
                    $err = 'Your money is not fixed';
                }

            } else {
                $err = 'Missing your email.';
            }

        } else {
            header('Location:home.html');
        }

        global $display;
        $display->output('error');
    }
}
